package com.aerospace.rpc4;

import com.aerospace.IUserService;

/**
 * @Author: Aerospace
 * @Date: 2021/5/12 21:37
 * @Description: Dream begins
 *
 * 这个版本彻底改变了客户端和服务端的通信方式：
 * 客户端不仅仅传递参数给服务器，还要传输调用的方法名字，参数类型 ：因此可以适用不同方法的调用而不用改代码
 * stub中适用反射拿到需要传递的上述信息： 因此stub对于不同的方法也不需要改动代码！
 * 顺便这个版本改用了Object Input/Output Stream 注意这个时候要确保传输的对象可序列化
 * 这个版本比较上个版本服务器 客户端 stub均有改动
 * 总之，这个版本在同一个服务类型（IUserService）之下，调用任何方法都不需要改动stub和服务端代码，只要改动IUserService的接口
 */
public class Client {
    public static void main(String[] args) {
        IUserService service = Stub.getStub();
        System.out.println(service.findUserById(123));
    }
}
